// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Engine/StaticMesh.h" //#include "GameFramework/Actor.h"
#include "Components/StaticMeshComponent.h"
#include "MeshReader.generated.h"

UCLASS()
class MYSCENE_API AMeshReader : public AActor
{	GENERATED_BODY()
	
public:	
	// Sets default values for this actor's properties
	AMeshReader();

protected:
	// Called when the game starts or when spawned
	virtual void BeginPlay() override;

public:	
	// Called every frame
	virtual void Tick(float DeltaTime) override;

    /**
     * ɨ�賡�����ռ����о�̬������Ϣ
     * @param bIncludeBSP �Ƿ����BSP������
     */
    UFUNCTION(BlueprintCallable, Category = "Mesh Reader")
    void ScanSceneForMeshes(bool bIncludeBSP = false);
//
//    /**
//     * ��ȡ��ǰɨ�赽������Actor����
//     */
//    UFUNCTION(BlueprintCallable, Category = "Mesh Reader")
//    int32 GetScannedMeshCount() const;
//
//    /**
//     * ��ȡָ������������Actor
//     */
//    UFUNCTION(BlueprintCallable, Category = "Mesh Reader")
//    AActor* GetScannedMeshActor(int32 Index) const;
//
//    /**
//     * ��ȡָ��Actor�����񶥵�����
//     */
//    UFUNCTION(BlueprintCallable, Category = "Mesh Reader")
//    TArray<FVector> GetMeshVertices(AActor* TargetActor, int32 LODIndex = 0) const;
//
//    /**
//     * �ڳ����п��ӻ���ʾ���񶥵�
//     */
//    UFUNCTION(BlueprintCallable, Category = "Mesh Reader|Debug")
//    void VisualizeMeshVertices(AActor* TargetActor, float PointSize = 5.0f, FColor Color = FColor::Green) const;
//
private:
    // �洢ɨ�赽������Actor
    UPROPERTY()
    TArray<AActor*> ScannedMeshActors;
//
//    // �ڲ���������ȡ��̬�������
//    UStaticMeshComponent* GetStaticMeshComponent(AActor* Actor) const;
//
//    // �ڲ���������ȡ��̬������Դ
//    UStaticMesh* GetStaticMeshFromActor(AActor* Actor) const;
};
